#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int DataType;

typedef struct ListNode {
	struct ListNode* next;
	DataType data;
}SList;

SList* BuyListNode(DataType x);
void SListPrint(SList* head);
void SListPushBack(SList** head, DataType x);
void SListPushFront(SList** head, DataType x);
void SListPopBack(SList** head);
void SListPopFront(SList** head);
SList* SListFind(SList* head,DataType x);
void SListInsert(SList** head, SList* pos, DataType x);
void SListErase(SList** head, SList* pos);
void SListInsertAfter(SList* pos, DataType x);
void SListEraseAfter(SList* pos);